#include "main.h"
#include "app_tick.h"
#include "stdio.h"
#include "gd32f10x_eval.h"
#include "usart.h"
#include "app_can.h"

#define ARRAYNUM(arr_nanme)      (uint32_t)(sizeof(arr_nanme) / sizeof(*(arr_nanme)))
#define TRANSMIT_SIZE            (ARRAYNUM(txbuffer) - 1)

uint8_t txbuffer[] = "\n\rUSART interrupt test\n\r";
uint8_t rxbuffer[32];
uint8_t tx_size = TRANSMIT_SIZE;
uint8_t rx_size = 32;
__IO uint8_t txcount = 0; 
__IO uint16_t rxcount = 0; 

/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{
	nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);
    /* configure COM0 */
    gd_eval_com_init1();
	
	app_tick_init();
	
	reg200(4);
	
	read_set_info(4);
	
	read_real_info(1);
	 
	reg204(1);
	
	while(1)
	{
		read_real_info(10);
		
		app_can_task_poll();
		
	}
	
	
    /* enable USART TBE interrupt */  
//    usart_interrupt_enable(USART0, USART_INT_TBE);
    
//    /* wait until USART send the transmitter_buffer */
//    while(txcount < tx_size);
//    
//    while(RESET == usart_flag_get(USART0, USART_FLAG_TC));
//	
//	while(1)
//	{
//		if(app_usart_task_poll(rec_data)==TRUE)
//		{
//		
//		}			
//	}
    
//    /* wait until USART receive the receiver_buffer */
//    while(rxcount < rx_size);
//    if(rxcount == rx_size)
//        printf("\n\rUSART receive successfully!\n\r");
//    while (1);
//}
}

/* retarget the C library printf function to the USART */
int fputc(int ch, FILE *f)
{
    usart_data_transmit(EVAL_COM0, (uint8_t)ch);
    while (RESET == usart_flag_get(EVAL_COM0, USART_FLAG_TC));
    return ch;
}


//int main(void)
//{
//	nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);
//	RS485_Config();
//}
